1
從分而治之到自我調用:遞歸的思維轉變
AI028Lesson 4
00:00

從迭代到遞歸:思維的重構

遞歸(Recursion)是一種從本質上改變問題解決視角的方法論。在處理列表求和等問題時,迭代法(程式碼清單 4-2)依賴於顯式的累加器 theSum 以及迴圈狀態控制;而遞歸法則依賴於深刻的數學定義:

$$listsum(numList) = first(numList) + listsum(rest(numList))$$

遞歸不僅僅是函數呼叫自身,它會將複雜問題分解為與其結構相同但規模更小的子問題,其核心在於識別大問題與子問題之間的自相似性。遞歸執行包含兩個對稱階段:

  • 「遞去」階段:不斷將列表切片並壓入呼叫堆疊,直到觸及可解決的基準情況(Base Case)。
  • 「歸來」階段:從最簡單的狀態開始,逐層向上返回並合併結果。
核心直覺
迭代思維是「拿一個桶,把數字一個個丟進去加起來」;遞歸思維則是「如果你能告訴我剩下那些數的總和是多少,我只要加上第一個數就行了」。